package pl.edu.pk.psb.bc.ds;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "wydarzenie")
public class WydarzenieDs  extends OgolnyDs{
	
	public static final String NAZWA_FIELD = "nazwa";
	public static final String OPIS_FIELD = "opis";
	public static final String DATA_FIELD = "data";
	public static final String KATEGORIA_FIELD = "kategoria";
	public static final String ADRES_FIELD = "adres";
	public static final String CENA_NORMALNA_FIELD = "cenaNormalna";
	public static final String CENA_ULGOWA_FIELD = "cenaUlgowa";

	@Column(name = "nazwa")
	private String nazwa;

	@Column(name = "opis")
	private String opis;

	@Column(name = "data")
	private Date data;

	@Column(name = "ilosc_miejsc")
	private Integer iloscMiejsc;

	@Column(name = "ilosc_rzedow")
	private Integer iloscRzedow;

	@OneToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "adres_id")
	private AdresDs adres;
	
	@Column(name = "data_dodania")
	private Date dataDodania;
	
	@Column(name = "sciezka_obrazu")
	private String sciezkaObrazu;
	
	@Column(name = "cena_normalna")
	private Float cenaNormalna;
	
	@Column(name = "cena_ulgowa")
	private Float cenaUlgowa;
	
	@Column(name = "wszystkich_miejsc")
	private Integer wszystkichMiejsc;
	
	@Column(name = "dostepnych_miejsc")
	private Integer dostepnychMiejsc;
	
	@OneToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "kategoria_id")
	private KategoriaDs kategoria;

	@OneToMany(cascade = CascadeType.ALL)
	@JoinTable(name = "miejsce_w_wydarzeniu", joinColumns = { @JoinColumn(name = "id_wydarzenia") }, inverseJoinColumns = { @JoinColumn(name = "id_miejsca") })
	private Set<MiejsceDs> miejsca = new HashSet<MiejsceDs>(0);

	public String getNazwa() {
		return nazwa;
	}

	public void setNazwa(String nazwa) {
		this.nazwa = nazwa;
	}

	public String getOpis() {
		return opis;
	}

	public void setOpis(String opis) {
		this.opis = opis;
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public AdresDs getAdres() {
		return adres;
	}

	public void setAdres(AdresDs adres) {
		this.adres = adres;
	}

	public Date getDataDodania() {
		return dataDodania;
	}

	public void setDataDodania(Date dataDodania) {
		this.dataDodania = dataDodania;
	}

	public String getSciezkaObrazu() {
		return sciezkaObrazu;
	}

	public void setSciezkaObrazu(String sciezkaObrazu) {
		this.sciezkaObrazu = sciezkaObrazu;
	}

	public Float getCenaNormalna() {
		return cenaNormalna;
	}

	public void setCenaNormalna(Float cenaNormalna) {
		this.cenaNormalna = cenaNormalna;
	}

	public Float getCenaUlgowa() {
		return cenaUlgowa;
	}

	public void setCenaUlgowa(Float cenaUlgowa) {
		this.cenaUlgowa = cenaUlgowa;
	}

	public KategoriaDs getKategoria() {
		return kategoria;
	}

	public void setKategoria(KategoriaDs kategoria) {
		this.kategoria = kategoria;
	}

	public Integer getWszystkichMiejsc() {
		return wszystkichMiejsc;
	}

	public void setWszystkichMiejsc(Integer wszystkichMiejsc) {
		this.wszystkichMiejsc = wszystkichMiejsc;
	}

	public Integer getDostepnychMiejsc() {
		return dostepnychMiejsc;
	}

	public void setDostepnychMiejsc(Integer dostepnychMiejsc) {
		this.dostepnychMiejsc = dostepnychMiejsc;
	}

	public Set<MiejsceDs> getMiejsca() {
		return miejsca;
	}

	public void setMiejsca(Set<MiejsceDs> miejsca) {
		this.miejsca = miejsca;
	}

	public Integer getIloscMiejsc() {
		return iloscMiejsc;
	}

	public void setIloscMiejsc(Integer iloscMiejsc) {
		this.iloscMiejsc = iloscMiejsc;
	}

	public Integer getIloscRzedow() {
		return iloscRzedow;
	}

	public void setIloscRzedow(Integer iloscRzedow) {
		this.iloscRzedow = iloscRzedow;
	}

}
